﻿// Decompiled with JetBrains decompiler
// Type: MCM.Abstractions.Wrapper.PropertyDefinitionWithMinMaxWrapper
// Assembly: MCMv5, Version=5.10.2.0, Culture=neutral, PublicKeyToken=null
// MVID: 7AB326B9-B2B4-41C2-9177-68E944071101
// Assembly location: D:\steam\steamapps\workshop\content\261550\2859238197\bin\Win64_Shipping_Client\MCMv5.dll

using HarmonyLib.BUTR.Extensions;
using System;

#nullable enable
namespace MCM.Abstractions.Wrapper
{
  public sealed class PropertyDefinitionWithMinMaxWrapper : 
    BasePropertyDefinitionWrapper,
    IPropertyDefinitionWithMinMax
  {
    public Decimal MinValue { get; }

    public Decimal MaxValue { get; }

    public PropertyDefinitionWithMinMaxWrapper(object @object)
      : base(@object)
    {
      Type type = @object.GetType();
      Decimal? nullable = AccessTools2.Property(type, nameof (MinValue))?.GetValue(@object) as Decimal?;
      this.MinValue = nullable.GetValueOrDefault();
      nullable = AccessTools2.Property(type, nameof (MaxValue))?.GetValue(@object) as Decimal?;
      this.MaxValue = nullable.GetValueOrDefault();
    }
  }
}
